﻿module MetaTagConverter

type MetaTagConverter() =
    static let metaDataValues = 
        [ 
            ("TruthDeduction", "ded")
            ("TruthAbduction", "abd") 
            ("TruthInduction", "ind") 
            ("TruthExemplification", "exe") 
            ("TruthConversion", "cnv") 
            ("TruthIdentity", "identity") 
            ("TruthContraposition", "cnt") 
            ("TruthStructuralIntersection", "structuralInt") 
            ("TruthStructuralAbduction", "structuralAbd") 
            ("TruthNegation", "neg") 
            ("TruthIntersection", "int") 
            ("TruthReduceConjunction", "redCon") 
            ("TruthComparison", "cmp") 
            ("TruthAnalogy", "ana") 
            ("TruthResemblance", "res") 
            ("TruthDecomposePositiveNegativeNegative", "pnn") 
            ("TruthDecomposePositiveNegativePositive", "pnp")
            ("TruthDecomposeNegativePositivePositive", "npp") 
            ("TruthDecomposePositivePositivePositive", "ppp")
            ("TruthDecomposeNegativeNegativeNegative", "nnn") 
            ("TruthUnion", "uni") 
            ("TruthDifference", "dif") 
            ("TruthStructuralDeduction", "structuralDed") 
            ("TruthAnonymousAnalogy", "anonAna") 
            ("TruthBeliefIdentity", "beliefId") 
            ("TruthBeliefStructuralDeduction", "beliefStrucuralDed") 
            ("TruthBeliefStructuralDifference", "beliefStructuralDif") 
            ("TruthBeliefNegation", "beliefNeg") 
            ("DesireStrong", "desireStrong")
            ("DesireDeduction", "desireDed") 
            ("DesireWeak", "weak") 
            ("DesireInduction", "desireInd") 
            ("DesireIdentity", "desireId") 
            ("DesireStructuralStrong", "desireStructuralStrong") 
            ("DesireNegation", "desireNeg") 
            ("PunctuationJudgment", "Judgement")
            ("PunctuationQuestion", "Question") 
            ("DeriveAllowBackward", "AllowBackward")
            ("EternalizeImmediate", "Immediate")
            ("OrderForAllSame", "ForAllSame")
            ("EventAnticipate", "Anticipate")
            ("SequenceIntervalsFromTask",   "FromTask")
            ("SequenceIntervalsFromBelief", "FromBelief")
        ] |> Map.ofSeq

    static member Lookup(name) = metaDataValues |> Map.find name
